package user.manage;

import groupby.util.Pages;

import java.io.ByteArrayOutputStream;
import java.util.List;

import net.sf.json.JSONObject;
import system.model.BasicInfor;
import system.model.SystemInfor;
import user.model.BrandInfor;
import user.model.Dynamic;
import user.model.Photoinfor;
import user.model.Pictures;
import user.model.Responses;
import user.model.Topic;
import user.model.UserDetial;
import user.model.Users;

public interface UsersManage {

	/**
	 * 用户登录
	 * @return
	 */
	Users usersLogin(String email,String password);

	/**
	 * 用户列表
	 * @return
	 */
	JSONObject getUserList(Pages pages,String email,String startTime,String endTime,int level ,int able);

	/**
	 * 开通申请的用户
	 * @param id
	 * @param able
	 * @return
	 */
	JSONObject ratify(int id, int able);

	/**
	 * 删除用户
	 * @param id
	 * @return
	 */
	JSONObject deleteUser(int id);

     /**
      * 获得用户信息
      * @param parseInt
      * @return
      */
	UserDetial getSingleUser(int id);

	/**
	 *  更新用户信息
	 * @param userDetial
	 */
	void updateSingleUser(UserDetial userDetial);

	/**
	 * 查找感兴趣的团购
	 * @param tags
	 * @return
	 */
	List getLikeGroupby(String tags,int city);

	/**
	 * checkUserEmail
	 * @param email
	 * @return
	 */
	JSONObject checkUserEmail(String email);

	/**
	 * 添加用户
	 * @param user
	 * @return
	 */
	int addUser(Users user);

	/**
	 * 添加用户细节
	 * @param userDetial
	 * @return
	 */
	boolean addUserDetial(UserDetial userDetial);

	/**
	 * 获得content
	 * @param categoryId
	 * @return
	 */
	BasicInfor getBasicInfor(int id);

	/**
	 * 
	 * @param bi
	 * @return
	 */
	boolean updateBasicInfor(BasicInfor bi);

	/**
	 * 获得我关注的团购
	 * @param id
	 * @return
	 */
	List attentionGroupbyList(Integer userId);

	/**
	 * 修改密码
	 * @param users
	 * @return
	 */
	JSONObject modifyUserPassword(Users users);

	/**
	 * 获得我的好友
	 * @param id
	 * @return
	 */
	public List myFriendList(Pages pages,Integer id,int level);

	/**
	 * 添加好友
	 * @param id
	 * @return
	 */
	JSONObject addFriend(int userId,int id);

	/**
	 * 获得用户
	 * @param id
	 * @return
	 */
	Users getUser(int id);

	/**
	 * 添加动态
	 * @param dynamic
	 */
	void addDynamic(Dynamic dynamic);


/**
 * 获得
 * @param id
 * @return
 */
	List dynamicList(Pages pages,int id);
/**
 * 添加回应信息
 * @param responses
 * @return
 */
	JSONObject addReplay(Responses responses);
/**
 * 获得评论信息
 * @param pages
 * @param id
 * @return
 */
List myCriticism(Pages pages, Integer id);
/**
 * 添加相册
 * @param picture
 * @return
 */
boolean addPictures(Pictures picture);
/**
 * 获得相册列表
 * @param id
 * @return
 */
JSONObject pictureList(Pages pages,String name,String startDate,String endDate,Integer id,int category,String flag);
/**
 * 删除相册
 * @param picId
 * @return
 */
JSONObject delPictures(int picId,String path);
/**
 * 推荐相册
 * @param picId
 * @param able
 * @return
 */
JSONObject ratifyPic(int picId, int able);
/**
 * 获得相册列表
 * @param pages
 * @param id
 * @return
 */
List picturesList(Pages pages, Integer id,String path,String flag);
/**
 * 获得相册列表for option
 * @param id
 * @return
 */
JSONObject picturesList(Integer id);
/**
 * 获得单个相册
 * @param picId
 * @return
 */
Pictures getPictures(int picId);
/**
 * 添加图片
 * @param pi
 * @return
 */
boolean addPhoto(Photoinfor pi);
/**
 * 显示相册图片
 * @param pages
 * @param picId
 * @return
 */
List showPhotoList(Pages pages, int picId);
/**
 * 回应相册图片
 * @param pages
 * @param photoId
 * @return
 */
Photoinfor criticismPhoto(Pages pages, int photoId,int picId);
/**
 * 添加品牌
 * @param brandInfor
 * @return
 */
JSONObject addBrandInfor(BrandInfor brandInfor);
/**
 * 获得品牌列表信息
 * @param picPages
 * @param i
 * @return
 */
List brandList(Pages picPages,int i);
/**
 * 获得品牌列表
 * @param pages
 * @param id
 * @return
 */
List brandInforAllList(Pages pages, Integer id);
/**
 * 获得单个类别的品牌列表
 * @param pages
 * @param id
 * @param category
 * @return
 */
List brandSingleCategoryList(Pages pages, Integer id, int category);
/**
 * 获得单个品牌
 * @param brandId
 * @return
 */
BrandInfor singleBrand(int brandId);
/**
 * 添加话题
 * @param topic
 * @return
 */
boolean addTopic(Topic topic);
/**
 * 获得话题列表
 * @param id
 * @return
 */
List topicList(Pages page,Integer id);
/**
 *获得单个话题
 * @param topicId
 * @return
 */
Topic getTopic(int topicId);
/**
 * 更新TopicCount
 */
void updateTopicCount(int topicId);
/**
 * 获得其它话题列表
 * @param pages
 * @param userId
 * @param topicId
 * @return
 */
List topicList(Pages pages, int userId, int topicId);
/**
 * 管理品牌列表 
 * @param pages
 * @param id
 * @return
 */
JSONObject manageBrandInforAllList(Pages pages, Integer id,String title,String startDate,String endDate,int category,String flag);
/**
 * 获得单个品牌
 * @param brandId
 * @return
 */
JSONObject getBrand(int brandId);
/**
 * 删除品牌图片
 * @param brandId
 * @param flag
 * @return
 */
JSONObject delImage(int brandId, String flag,String image,String path);
/**
 * 上传图片
 * @param brandId
 * @param flag
 * @param image
 * @return
 */
JSONObject uploadSingleImage(int brandId, String flag, String image);
/**
 * 更新brand信息
 * @param brandId
 * @param title
 * @param content
 * @param category
 * @return
 */
JSONObject modifyBrand(int brandId, String title, String content, int category,int category2);
/**
 * 推荐品牌
 * @param brandId
 * @param flag
 * @return
 */
JSONObject modifyBrand(int brandId, String flag);
/**
 * 获得品牌推荐信息
 * @param page
 * @return
 */
List brandList(Pages page,boolean flag,String category);
/*
 * 获得个类别的所有品牌信息
 */
List brandSingleCategoryList(Pages pages, Integer id,String flag);
/**
 * 获得推荐用户列表
 * @param pages
 * @param email
 * @param startTime
 * @param endTime
 * @param categoryId
 * @return
 */
JSONObject userList(Pages pages, String email, String startTime,
		String endTime, String categoryId);
/**
 * 推荐用户
 * @param userId
 * @param flag
 * @return
 */
JSONObject recommendUser(int userId, int flag);
/**
 * 获得推荐品牌列表
 * @param page
 * @param i
 * @return
 */
List brandUserList(Pages page, int i,int flag);

/**
 * 获得品牌用户　by Category
 * @param page
 * @param id
 * @return
 */
List brandUserListByCategory(Pages page, Integer id);
/**
 *查找picture by category
 * @param picPages
 * @param id
 * @return
 */
List pictureListByCategory(Pages picPages, Integer id);
/**
 * 修改相册图片信息
 * @param photoinfor
 * @return
 */
JSONObject photoModify(Photoinfor photoinfor);
/**
 * 删除相册里的图片
 * @param photoId
 * @return
 */
JSONObject photoDel(int photoId,String path);
/**
 * 设图片为封面
 * @param picId
 * @param string
 * @return
 */
JSONObject pictureFace(int picId, String string);
/**
 * 获得关注我的人
 * @param pages
 * @param userId
 * @return
 */
List friendToMeList(Pages pages, int userId);
/**
 * 删除品牌
 * @param brandId
 * @param path
 * @return
 */
JSONObject delBrand(int brandId, String path);
/**
 * 话题管理
 * @param pages
 * @param convertToChinese
 * @param startDate
 * @param endDate
 * @return
 */
JSONObject topicListForJson(Pages pages,int id, String convertToChinese,
		String startDate, String endDate);
/**
 * 删除话题
 * @param topicId
 * @return
 */
JSONObject delTopic(int topicId);
/**
 * 更新话题
 * @param topicInfor
 * @return
 */
JSONObject modifyTopic(Topic topicInfor);
/**
 * 修改邮箱
 * @param users
 * @return
 */
JSONObject modifyEmail(Users users);
/*
 * 
 * 修改相册
 */
JSONObject modifyPicture(Pictures pic);
/**
 * 找回密码
 * @param email
 * @return
 */
JSONObject findUserPassword(String email,SystemInfor  systemInfor);
/**
 * 删除用户所有信息
 * @param id
 * @return
 */
JSONObject findUserPassword(Integer id);
/**
 * 置顶
 * @param brandId
 * @param flag
 * @return
 */
JSONObject top(int brandId, String flag);
/**
 * 获得列表
 * @param pages
 * @param title
 * @param startTime
 * @param endTime
 * @return
 */
JSONObject menageCulmn(Pages pages, String title, String startTime,
		String endTime);
/**
 * 删除栏目
 * @param id
 * @return
 */
JSONObject delculmn(int id);
/**
 * 添加栏目
 * @param title
 * @return
 */
JSONObject addculmn(String title);
/**
 * 获得栏目列表
 * @return
 */
JSONObject culmnlist();
/**
 * 添加栏目
 * @return
 */
List culmnList();
/**
 * 获得分类用户
 * @return
 */
JSONObject findCategoryUserList();
/**
 * 删除品牌所有的话题
 * @param brandId
 * @return
 */
JSONObject delAllTopicForUser(int brandId);
/**
 * 获得关注我的人
 * @return
 */
int meToFriendList(int userId);

List friendToMe(Pages page,int userId);


}
